---
title: Legal Person
summary: Maintains legal-person master rows and legal-person-type assignments through switchable editable grids.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-25
---

# Legal Person

Legal Person is a LegalMaintenance maintenance screen that uses `clsLegalPersonManager` from [SAIF.Application.Claim.Legal](../libraries/saif-application-claim-legal/overview.md) to bind editable [SAIF.Business.Claim.Legal](../libraries/saif-business-claim-legal/overview.md) collections for legal-person master data and legal-person-type assignments. The user selects a maintenance view in `ddlPersonType`, then edits the corresponding Infragistics grid and saves through the shared SAIF toolbar.

## Entry conditions
- User opens `frmLegalPerson.aspx`; on first load the page creates `clsLegalPersonManager`, loads `ddlPersonType`, and binds the selected grid.

## Fields

| Field | Control type | Purpose | Validation |
| --- | --- | --- | --- |
| `ddlPersonType` | `DropDownList` | Selects whether the screen maintains legal-person rows or legal-person-type rows. | Populated from `Manager.LegalViewCodes`; `ActiveGrid` handles `legal_person` and `legal_person_type`. |
| `chkExpired` | `CheckBox` | Includes expired rows when the legal-person-type grid is active. | Boolean value is passed to `Manager.IncludeExpired`; shown only for the legal-person-type view. |
| `dgPerson.LastName` | `WebDataGrid` text column | Stores the legal person's last name. | Validated by `Manager.LegalPersonCol.IsValid` on save; no field-specific client mask is defined in this page. |
| `dgPerson.FirstName` | `WebDataGrid` text column | Stores the legal person's first name. | Validated by `Manager.LegalPersonCol.IsValid` on save; no field-specific client mask is defined in this page. |
| `dgPerson.MiddleInitial` | `WebDataGrid` text column | Stores the legal person's middle initial. | Validated by `Manager.LegalPersonCol.IsValid` on save; no field-specific client mask is defined in this page. |
| `dgPerson.PreferredName` | `WebDataGrid` text column | Stores the legal person's preferred name. | Validated by `Manager.LegalPersonCol.IsValid` on save; no field-specific client mask is defined in this page. |
| `dgPerson.Ssn` | `WebDataGrid` masked text column | Stores the legal person's SSN. | Masked by `dgPerson_MaskEditorProvider_ssn` with `###-##-####`; validated by `Manager.LegalPersonCol.IsValid` on save. |
| `dgPersonType.LegalPersonID` | `WebDataGrid` drop-down column | Selects the legal person attached to a type row. | Choices are loaded from `Manager.LegalPersonCol`; validated by `Manager.LegalPersonTypeCol.IsValid` on save. |
| `dgPersonType.LegalPersonTypeCode` | `WebDataGrid` drop-down column | Selects the person-type code for the row. | Choices are loaded from `Manager.PersonTypes`; validated by `Manager.LegalPersonTypeCol.IsValid` on save. |
| `dgPersonType.EffectiveDate` | `WebDataGrid` date column | Stores when the legal-person-type row becomes effective. | Typed as `System.DateTime`; validated by `Manager.LegalPersonTypeCol.IsValid` on save. |
| `dgPersonType.ExpirationDate` | `WebDataGrid` date column | Stores when the legal-person-type row expires. | Typed as `System.DateTime`; validated by `Manager.LegalPersonTypeCol.IsValid` on save. |

## Operations

| Operation | Trigger | Description |
| --- | --- | --- |
| Load active view | `Page_Load` | On first load, initializes the manager, loads the view selector, binds the active grid, applies preferences, and enables or disables toolbar actions based on `Manager.IsInViewOnly`. |
| Retrieve selected view | `btnRetrieve` `Click` | Causes a postback that rebinds the current grid using the selected `ddlPersonType` value. |
| Switch maintenance grid | `ddlPersonType` `SelectedIndexChanged` | Toggles between `dgPerson` and `dgPersonType`, reapplies preferences, rebinds data, reapplies sorting, and shows or hides `chkExpired`. |
| Toggle expired type rows | `chkExpired` `CheckedChanged` | Sets `Manager.IncludeExpired`, rebinds `dgPersonType`, and reapplies sorting. |
| Insert row | `SAIFMenuTop.InsertButton` `ToolbarClick` | Inserts a new legal-person or legal-person-type row and starts inline editing at the first editable column. |
| Save changes | `SAIFMenuTop.SaveButton` `ToolbarClick` | Validates that the active collection is dirty and valid, writes through the controller, rebinds data, and shows success or validation messages. |
| Delete selected row | `SAIFMenuTop.DeleteButton` `ToolbarClick` | Deletes the selected legal-person or legal-person-type row through the manager and refreshes the bound grid state. |
| Save display preferences | `SAIFMenuTop.PrefsSet` `ToolbarClick` | Saves grid sizing and column preferences for both grids using `hfGridHeight` and `hfGridWidth`. |
| Clear display preferences | `SAIFMenuTop.PrefsClear` `ToolbarClick` | Clears saved preferences for both grids. |

## Business rules

| Rule ID | Rule | Enforcement | Source |
| --- | --- | --- | --- |
| [BR-APP-001](../application/business-rules.md#br-app-001-ad-group-gated-view-only-mode-controls-toolbar-edits) | View-only users can open the screen but cannot use Delete, Insert, or Save. | `Page_Load` checks `Manager.IsInViewOnly` and disables the toolbar buttons. | `LegalMaintenance\frmLegalPerson.aspx.vb:54-66` |
| Screen-specific | `ddlPersonType` determines which grid is visible and whether the expired-row toggle is available. | `ActiveGrid`, `FormatWebGridColumns`, and `ddlPersonType_SelectedIndexChanged`. | `LegalMaintenance\frmLegalPerson.aspx.vb:20-29, 124-138, 311-323` |
| Screen-specific | The screen saves only when the active collection is dirty and valid; otherwise it shows validation or "no save" messages. | `Save`. | `LegalMaintenance\frmLegalPerson.aspx.vb:168-202` |
| Screen-specific | Expired legal-person-type rows are included only when `chkExpired` is checked. | `chkExpired_CheckedChanged`. | `LegalMaintenance\frmLegalPerson.aspx.vb:326-330` |

## Infragistics components

| Control ID | Control type | SAIF wrapper | Infragistics base | Purpose |
| --- | --- | --- | --- | --- |
| `dgPerson` | `ig:WebDataGrid` | Direct Infragistics control (no SAIF wrapper) | `Infragistics.Web.UI.GridControls.WebDataGrid` | Edits legal-person master rows. |
| `dgPersonType` | `ig:WebDataGrid` | Direct Infragistics control (no SAIF wrapper) | `Infragistics.Web.UI.GridControls.WebDataGrid` | Edits legal-person-type rows. |
| `dgPerson_MaskEditorProvider_ssn` | `ig:MaskEditorProvider` | Direct Infragistics control (no SAIF wrapper) | `Infragistics.Web.UI.GridControls.MaskEditorProvider` | Applies the SSN input mask for `dgPerson.Ssn`. |
| `dgPerson_DropDownProvider1` | `ig:DropDownProvider` | Direct Infragistics control (no SAIF wrapper) | `Infragistics.Web.UI.GridControls.DropDownProvider` | Supplies legal-person choices for `dgPersonType.LegalPersonID`. |
| `dgPerson_DropDownProvider2` | `ig:DropDownProvider` | Direct Infragistics control (no SAIF wrapper) | `Infragistics.Web.UI.GridControls.DropDownProvider` | Supplies person-type-code choices for `dgPersonType.LegalPersonTypeCode`. |
| `WebResizingExtender1` | `igui:WebResizingExtender` | Direct Infragistics control (no SAIF wrapper) | `Infragistics.WebUI.WebResizingExtender` | Persists client resizing for `dgPerson`. |
| `WebResizingExtender2` | `igui:WebResizingExtender` | Direct Infragistics control (no SAIF wrapper) | `Infragistics.WebUI.WebResizingExtender` | Persists client resizing for `dgPersonType`. |

## Navigation

| Target | Trigger | Parameters |
| --- | --- | --- |
| `frmAttorneyProfile.aspx` | inherited `Page_Load` timeout redirect | `msg=Your session has timed out` |

## Sources
- LegalMaintenance\frmLegalPerson.aspx
- LegalMaintenance\frmLegalPerson.aspx.vb
- LegalMaintenance\Classes\clsLegalMaintenanceAncestor.vb

